package br.com.autoLeal.cliente.bean;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.autoLeal.bean.GenericBean;
import br.com.autoLeal.util.WebResources;
import br.com.autoleal.cliente.entity.ClienteServiceBean;
import br.com.autoleal.cliente.entity.PessoaFisica;
import br.com.autoleal.cliente.entity.PessoaJuridica;

@ViewScoped
@ManagedBean
public class AlterarClienteBean extends GenericBean {

	private static final long serialVersionUID = -6978325458842908433L;

	private Integer tpCliente;

	private PessoaFisica pessoaFisica = new PessoaFisica();
	private PessoaJuridica pessoaJuridica = new PessoaJuridica();

	@EJB
	private ClienteServiceBean clienteServiceBean;
	
	@PostConstruct
	public void init() {
		tpCliente = (Integer) WebResources.getFlash().get(WebResources.TIPO_CLIENTE);
		switch (tpCliente) {
		case 1:
			pessoaFisica = (PessoaFisica) WebResources.getFlash().get(WebResources.CLIENTE);
			break;
		case 2:
			pessoaJuridica = (PessoaJuridica) WebResources.getFlash().get(WebResources.CLIENTE);
			break;
		default:
			break;
		}
	}

	public void alterarCliente() {
		try {
			switch (tpCliente) {
			case 1:
				clienteServiceBean.alterarCliente(pessoaFisica);
				exibirMsgSucesso("Cliente alterado");
				break;
			case 2:
				clienteServiceBean.alterarCliente(pessoaJuridica);
				exibirMsgSucesso("Cliente alterado");
				break;
			default:
				break;
			}
		} catch (Exception e) {
			exibirMsgErro(e.getMessage());
		}
	}


	public Integer getTpCliente() {
		return tpCliente;
	}

	public void setTpCliente(Integer tpCliente) {
		this.tpCliente = tpCliente;
	}

	public PessoaFisica getPessoaFisica() {
		return pessoaFisica;
	}

	public void setPessoaFisica(PessoaFisica pessoaFisica) {
		this.pessoaFisica = pessoaFisica;
	}

	public PessoaJuridica getPessoaJuridica() {
		return pessoaJuridica;
	}

	public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
		this.pessoaJuridica = pessoaJuridica;
	}

}
